<?php

/**
 * Controlador de Control Interno
 * 
 * @category   Controller
 * @package    modules__models
 * @author     Jose Miguel De Jesus <josejm07@hotmail.com>
 * @copyright  Todos los derechos reservados. Company24h. 2013.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 1.
 */
class controlInternoControler extends Controller{
   
     public function __construct()
	{
		parent::Controller();
		
               $this->load->model(array('usuarios','mservicios','mcompania','mprocesos','mestatus','metapas','tiposeguimientomodel','mmodeloetapas'));
               $this->load->library(array('chcalendario'));
	}
	
          public function index()
         {
              $this->load->view('main',array('content_page' => 'interno', 'menutop' => 0));
         }
         
         /**
          * Datos del primer datagrid
          */
         public function data()
          {
             
                $this->reguladorDeEtapas();
             
                $page      = $this->input->post('page');
                $qtype     = $this->input->post('qtype');
                $query     = $this->input->post('query');
                $rp        = $this->input->post('rp');
                $sortname  = $this->input->post('sortname');
                $sortorder = $this->input->post('sortorder');
                
                 $n = $rp * $page;
                         
                $listado = $rp * $page - $rp;
                
                if($listado < 0)  $listado =0;

               $totalRecords =$this->mcompania->controlInternoData(array(11,10),FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE); 
               
                if($n > $totalRecords) $n = $totalRecords;
               
                $totalPages = ceil($totalRecords/$rp);

                 if ($page > $totalPages) 
		       $page = $totalPages;
                
                $json_output = array(
		            'page'		=> $page,
		            'total'		=> $totalRecords,
		            'rows'		=> array()
		        );
                            
                            /**Validacion para que noordene por el campo semafaro**/
                            if($sortname == "semafaro")
                                {
                                $sortname = "NombreCompania";
                                }elseif ($sortname == "semafaro-seguimiento") {
                                         $sortname = "NombreCompania";
                                                           }
                
                          $records = $this->mcompania->controlInternoData(array(11,10),$sortname,$sortorder,$query,$qtype,$rp,$listado,FALSE );
                
                         if($records != false)
                        {
                  
                             foreach ($records as $key)
                                 {
                            
                   $semafaro_segumiento = 0;              
                                 
                      /**Semafaro de la etapa Cuenta desde la primera bes que este la etapa **/
                   $proceso = $this->mprocesos->LoadProcesosConteoCambioDeEtapasFirmaDatos($key->getIdCompania(),$key->getIdUltimaEtapa());
                   $FechaprimerProceso = $this->chcalendario->calcularDias($proceso[0]->fecha);       
                   $proceso_neto = ($FechaprimerProceso/11)*100;      
                   $semafaro_imajen = 0;
                   
                    if($proceso_neto >= 0 and $proceso_neto < 70 or $proceso_neto == 0 or $proceso_neto < 0)
                     {
                    $semafaro_imajen = "<img src='http://code.company24h.com/public/images/1.png'/>";
                     
                     }elseif ($proceso_neto >= 70 and $proceso_neto <85) {
                
                      $semafaro_imajen = "<img src='http://code.company24h.com/public/images/2.png'/>";
                        
                      }else{ $semafaro_imajen = "<img src='http://code.company24h.com/public/images/3.png'/>";}
                               
                      /***Busca la ultima etapa y calcula el tiempo del seguimiento ***/ 
                      $proceso_semafaro_siguimiento = $this->mprocesos->urtimoId($key->getIdCompania(),TRUE);
                      
                      $proceso_neto_seguimiento =0;
                      $FechaUltimoProceso = 0;
                      $semafaro_segumiento = 0;
                      
                      if($proceso_semafaro_siguimiento[0]->fechaContacto > 0)
                       {
                          $FechaUltimoProceso = $this->chcalendario->calcularDias($proceso_semafaro_siguimiento[0]->fechaContacto); 
                          
                          
                           if($FechaUltimoProceso >= -3)
                     {
                    $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/1.png'/>";
                     
                     }elseif ($FechaUltimoProceso < -3 and $FechaUltimoProceso <= 0) {
                
                      $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/2.png'/>";
                        
                      }else{ $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/3.png'/>";}     
                          
                          
                          
                       }else{ 
                           
                           /***Busca la ultima etapa y calcula el tiempo del seguimiento ***/ 
                      $proceso_semafaro_siguimiento = $this->mprocesos->urtimoId($key->getIdCompania(),FALSE);
                           
                           $FechaUltimoProceso = $this->chcalendario->calcularDias($proceso_semafaro_siguimiento[0]->fecha);
                            
                           if($proceso_semafaro_siguimiento[0]->IdTipoSeguimiento == 3)
                      {
                         $proceso_neto_seguimiento = ($FechaUltimoProceso/3)*100;  
                         
                      }else{
                        $proceso_neto_seguimiento = ($FechaUltimoProceso/4)*100;
                          }
                          
                          if($proceso_neto_seguimiento >= 0 and $proceso_neto_seguimiento < 70 or $proceso_neto_seguimiento == 0 or $proceso_neto_seguimiento < 0)
                     {
                    $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/1.png'/>";
                     
                     }elseif ($proceso_neto_seguimiento >= 70 and $proceso_neto_seguimiento <85) {
                
                      $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/2.png'/>";
                        
                      }else{ $semafaro_segumiento = "<img src='http://code.company24h.com/public/images/3.png'/>";}     
                          
                           }
                      
                    
                      
                      
                     /**busca el servicio **/            
                     $servico = $this->mservicios->LoadServicioById($key->getIdServicio()); 
                     
                     /**busca el usuario **/
                     $nombreUsuario = $this->usuarios->LoadUsuarioById($key->getIdUsuario());
                     
                     /**elige una etapa**/
                     $etapa = "";
                     if($key->getIdUltimaEtapa() == 11)
                         {
                         $etapa = "DATOS";
                         }  else {
                             $etapa = "FIRMA";
                         }
                     
                                  $json_output['rows'][] = array(
				 'IdCompania' => $key->getIdCompania(),
                                         'cell' => array(
                                         'IdCompania' => $key->getIdCompania(),
                                         'NombreCompania' => $key->getNombreCompania(), 
                                         'IdServicio' => $servico->getNombreServicio(),
                                         'clasificacion_servicios' => $key->getClasificacionS(),  
                                         'idUltimaEtapa' => $etapa,
                                         'Telefono1Compania' => $key->getTelefono1Compania(),
                                         'Contacto' => $key->getContacto(),
                                         'IdUsuario' => $nombreUsuario->getNombreUsuario(),
                                         'EmailCompania' => $key->getEmailCompania(),
                                         'semafaro' => $semafaro_imajen,
                                         'semafaro-seguimiento' => $semafaro_segumiento));
                                 
                                 }//fin del foreach
                             
                       }
                       
                        echo json_encode($json_output);
          }
          
          /**
           * Carga la vista del segundo datagrid
           */
          public function loadSegundoGrid()
                  {
                       
                  $id['id'] =  $this->input->post('id') ? $this->input->post('id'):NULL;

                  $this->load->view('interno-detalles' ,array('id' => $id));
                  }

          

          public function detallesSegundoDataGrid()
            {
              
                $page      = $this->input->post('page');
                $qtype     = $this->input->post('qtype');
                $query     = $this->input->post('query');
                $rp        = $this->input->post('rp');
                $sortname  = $this->input->post('sortname');
                $sortorder = $this->input->post('sortorder');
                
                $contador =0;
                
                $json_output = array(
		            'page'		=> $page,
		            'total'		=> 0,
		            'rows'		=> array()
		        );
            
                $separadas = explode('/', $_SERVER["REQUEST_URI"]);
             
                       $int =  end($separadas);
                
               $listado = $this->mprocesos->LoadProcesos($int);
                
              
               
               if($listado)
                   {
                   
                 $compania = $this->mcompania->LoadCompaniaById($int);
                   
                    
                   foreach ($listado as $key):
                       
                     if($compania->getIdUltimaEtapa() == $key->getIdEtapa())
                         {
                   
                         //**Busca el nombre del status  **//
                      $status = $this->mestatus->LoadEstatusById($key->getIdEstatus());
                        
                      //**Busca el nombre de la etapa  **//
                      $etapa = $this->metapas->LoadEtapaById($key->getIdEtapa());
                      
                      //**Busca el nombre del usuario  **//
                      $usuario = $this->usuarios->LoadUsuarioById($key->getIdUsuario());
                      
                      /**Busca el Tipo de Seguimiento **/
                      $tipoSeguimiento = $this->tiposeguimientomodel->loadDataById($key->getIdTipoSeguimiento());
                      
                      $this->session->set_userdata('COMPANIA',$int);
                      
                          $json_output['rows'][] = array(
				 'IdProceso' => '',
                                         'cell' => array(
                                         'IdProceso' => $key->getIdProceso(),
                                         'IdEstatus' => $status->getNombre(),
                                         'Comentario' => $key->getDescripcion(),
                                         'IdEtapa' => $etapa->GetNombre(),
                                         'FechaProceso' => $key->getFechaProceso(),
                                         'IdUsuario' => $usuario->getNombreUsuario(),
                                         'IdTipoSeguimiento' => $tipoSeguimiento->getTipoSeguimiento()));
                          
                          $contador++;
                         
                         }  else {
                         
                             continue;
                         }  
                       
                   endforeach;
                   
                   $json_output['total'] = $contador;

                   echo json_encode($json_output); 
                   
                   }
              
            }

                    /**
           * regula la tabla CS_COMPANIA y verifica que idUltimaEtapa sea el correcto
           */
          public function reguladorDeEtapas()
           {
                $SC_COMPANIA = $this->mcompania->LoadCompaniasEtapas(); 
                
                foreach ($SC_COMPANIA as $key)
                    {
                    
                   $proceso = $this->mprocesos->buscarUltimoProceso($key->getIdCompania());
                 
                   if($proceso[0]->getIdEtapa() == $key->getIdUltimaEtapa())
                       {
                       
                       }  else {
                       
                           $this->mcompania->inserEtapaActual($key->getIdCompania(),$proceso[0]->getIdEtapa()); 
                       }
                    
                    }
                
           }
          
}

?>
